home *** CD-ROM | disk | FTP | other *** search
-
- VMEM V1.1
-
- Virtuelle Speicherverwaltung für alle Atari Rechner
-
- © 1990 Robert Federle
-
-
- Grundsätzliches:
- ================
-
- Was ist ein virtueller Speicher?
- --------------------------------
-
- Viele kennen das Problem: da besitzt man einen Rechner mit "nur" 512 KByte
- und dennoch laufen einige Programme nur mit mindestens einem oder mehreren
- MByte. Meistens liegt dies daran, daß diese Programme sämtliche Daten im
- Speicher halten. So legen die meisten Zeichenprogramme einen UNDO-Puffer an,
- der meist genau so groß ist wie die eigentliche Zeichenfläche. Da eine DIN A4
- Seite (ungepackt, einfarbig) 950 KByte groß ist, wird selbst bei einem Mega
- ST 2 mit 2 MByte Speicher das Arbeiten verhindert. Zwar kann man inzwischen
- bei den meisten Programmen diesen UNDO-Puffer weglassen, doch was macht man,
- wenn man ihn einmal braucht?? Dauerndes Speichern auf der Platte ist auch
- nicht sinnvoll, denn damit übernimmt man selbst die Arbeit, die eigentlich
- der Computer machen sollte.
-
- Aus diesem Grund wurde das Programm VMEM geschrieben. Mit VMEM ist es nun
- möglich, große Datenmengen statt im Hauptspeicher auf der viel größeren Platte
- zu speichern, wobei man mit speziellen Befehlen auf einfachste Art und Weise
- darauf zugreifen kann. Vor der Benutzung des Speichers muß man ihn anfordern,
- danach muß man ihn wieder freigeben. Dies ist beim normalen Speicher gleich.
- Der einzige Unterschied besteht darin, daß der Hauptspeicher immer am gleichen
- Platz ist, wohingegen man auf den virtuellen Speicher nur durch ein "Fenster",
- dem Datencache, zugreifen kann. Dieses "Fenster" muß vor dem Zugriff mittels
- einer speziellen Funktion (VM_ADDRESS) auf den gewünschten Speicherbereich des
- virtuellen Speichers eingestellt werden. Erst danach kann auf man die Daten,
- die nun im Cache liegen, zugreifen und diese verändern. Man muß diese Daten
- jedoch nicht selbst zurückschreiben, da dies die "intelligente" Verwaltung
- des Caches übernimmt.
-
- Was nützt mir ein virtueller Speicher?
- --------------------------------------
-
- Falls Sie ein Anwender sind und ein Programm bekommen, das VMEM unterstützt,
- so sind Sie in der Lage, Datenmengen zu handhaben, die größer als Ihr Speicher
- sind. Somit können selbst Besitzer von 1 MByte und weniger eine DIN A4-Seite
- von 300 DPI bearbeiten.
-
- Als Programmierer gibt es mehrere Einsatzgebiete für VMEM. Den wohl sinnvoll-
- sten Einsatz bieten wohl die Mal- und Zeichenprogramm, die in der Lage sind,
- große Vorlagen (z.B. von Scannern) zu bearbeiten. Man sollte aber nicht nur
- den UNDO-Puffer in den virtuellen Speicher verlagern, denn dank der hohen
- Übertragungsgeschwindigkeiten der meisten Platten kann man selbst große Bilder
- fließend scrollen (siehe VMEMDEMO).
-
- Aber auch in Sound-Sampler kann man VMEM verwenden. Zwar kann man die Daten
- nicht vom virtuellen Speicher lesen und gleichzeitig ausgeben, jedoch können
- einmal aufgenommene Samples mit Hilfe von VMEM auf die Platte ausgelagert und
- bei Bedarf wieder eingeladen werden. Da die meisten Platten mehr als 500 KByte
- pro Sekunde übertragen, dauert dies im schlimmsten Fall 3-4 Sekunden.
-
- Man muß VMEM aber nicht nur bei Datenmengen verwenden, die mehrere MByte be-
- tragen. Selbst bei einem 100 KByte-Block, den man auf die Platte ausgelagert
- hat, spart man wichtigen Hauptspeicher. Natürlich ist es in diesem Fall un-
- sinnig, einen Cache anzulegen, der größer als 100 KByte ist. Hier würde auch
- ein 10 KByte-Cache reichen.
-
- Das beigefügte VMEMDEMO zeigt eine einfache Anwendung. Hierbei wird eine zuvor
- gewählte GEM-IMG-Datei in den Hauptspeicher eingelesen, in den virtuellen
- Speicher entpackt und anschließend gescrollt. Das Entpacken dauert ca. 10 mal
- länger als üblich. Das Scrollen hingegen, das waagrecht mit 16 Bit und senk-
- recht mit 16 Zeilen erfolgt, ist nur um den Faktor 3 bis 4 langsamer als bei
- vergleichbaren Programmen. Zudem ergibt sich bei dem horizontalen Scrolling
- kein einziger Zugriff auf die Platte, obwohl jeweils 32 KByte aus dem "Fenster"
- herauskopiert werden. Der Algorithmus, der in der Funktion VM_ADDRESS steckt,
- ist soweit optimiert, daß selbst bei großen "Sprüngen" im virtuellen Speicher
- nur die Seiten zurückgeschrieben werden, die geändert wurden und auf die am
- längsten nicht mehr zugegriffen wurde (sog. LRU-Aging-Algorithmus).
-
-
- ******************************************************************************
- * Ein Hinweis an Besitzer einer Wechselplatte: *
- * *
- * Falls die temporäre Datei auf der Wechselplatte angelegt wird, so darf sie *
- * vor Programmbeendigung unter keinen Umständen herausgenommen werden!!! *
- ******************************************************************************
-
-
- Leistungsmerkmale von VMEM V1.1:
- ================================
-
- * Verwaltung von bis zu 2 Gigabyte an zusätzlichem Speicher
-
- * lauffähig auf allen Atari-Rechnern mit Fest-/Wechselplatte
-
- * VMEM erlaubt die Nutzung großer Datenmengen auch bei Rechnern, deren
- Hauptspeicher nur 512 KByte beträgt
-
- * frei konfigurierbare Größe des Speichers und des Caches
-
- * Cache mit "intelligentem" Verwaltungsalgorithmus (modifizierter LRU-Aging)
-
- * einfache Programmierung (ähnlich Malloc und Mfree des Betriebssystems)
-
- * spezielle Zugriffsbefehle erledigen den Datenaustausch zwischen dem
- virtuellen Speicher und dem physikalischen Speicher / Datenträger
- mit der größtmöglichen Geschwindigkeit
-
- * geringer Mehraufwand bei der Erweiterung bestehender Programme
-
- * einmalige Installation im Speicher
-
- * Updates von VMEM erfordern keine übersetzung bestehender Programme
-
-